Create Custom MaterialTheme in a separate File (just like with any other Custom Composable Function).
And then just import it into any Kotlin File.
MainActivity.kt
package com.example.testcompose
import com.example.testcompose.ui.MyTheme
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.Text
import androidx.compose.material.MaterialTheme
import androidx.compose.material.darkColors
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.setContent
//============================================================
// CLASS: MyTheme
//============================================================
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyTheme {
Text(
text = "Hello",
color = MaterialTheme.colors.primary
)
}
}
}
}
MyThemes.kt
package com.example.testcompose.ui
import androidx.compose.material.MaterialTheme
import androidx.compose.material.darkColors
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
private val MyColors = darkColors(
primary = Color.Red,
secondary = Color.Green
)
@Composable
fun MyTheme(content: @Composable() () -> Unit) {
MaterialTheme(colors = MyColors) {
content()
}
}